package com.sws.capture.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

@ApiModel(description = "设备下发人脸抓拍记录数据接收对象")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CaptureDto {
    /**
     * 事件类型:
     * 1：移动侦测报警
     * 2：智能分析报警:区域入侵或绊线检测报警
     * 3：智能分析报警:视频遮挡报警
     * 4：智能分析报警:婴儿啼哭报警
     * 5：智能分析报警:人员聚集检测报警
     * 6：智能分析报警:人员徘徊检测报警
     * 7：智能分析报警:快速移动报警
     * 8：火焰报警
     * 9：智能分析报警:音量陡升报警
     * 10：智能分析报警:环境噪声陡降报警
     * 11：人形检测实时抓拍
     * 12：关注人员(黑白名单)检测
     * 13：离岗检测报警
     * 14：体温检测报警
     */
    @ApiModelProperty("事件类型:"
            + "\n" + "1：移动侦测报警"
            + "\n" + "2：智能分析报警:区域入侵或绊线检测报警"
            + "\n" + "3：智能分析报警:视频遮挡报警"
            + "\n" + "4：智能分析报警:婴儿啼哭报警"
            + "\n" + "5：智能分析报警:人员聚集检测报警"
            + "\n" + "6：智能分析报警:人员徘徊检测报警"
            + "\n" + "7：智能分析报警:快速移动报警"
            + "\n" + "8：火焰报警"
            + "\n" + "9：智能分析报警:音量陡升报警"
            + "\n" + "10：智能分析报警:环境噪声陡降报警"
            + "\n" + "11：人形检测实时抓拍"
            + "\n" + "12：关注人员(黑白名单)检测"
            + "\n" + "13：离岗检测报警"
            + "\n" + "14：体温检测报警")
    private Integer type;

    /**
     * 抓拍时间，UNIX时间戳，单位：秒。
     */
    @ApiModelProperty("抓拍时间，UNIX时间戳，单位：秒。")
    private Long time;

    /**
     * 设备序列号
     */
    @ApiModelProperty("设备序列号")
    private String sn;

    /**
     * 设备ID
     */
    @ApiModelProperty("设备ID")
    private String did;

    /**
     * 姓名，比对机专用。
     */
    @ApiModelProperty("姓名，比对机专用。")
    private String name;

    /**
     * 年龄，比对机专用。
     */
    @ApiModelProperty("年龄，比对机专用。")
    private Integer age;

    /**
     * 1-男，2-女。比对机专用。
     */
    @ApiModelProperty("1-男，2-女。比对机专用。")
    private Integer gender;

    /**
     * 身份证号，比对机专用。
     */
    @ApiModelProperty("身份证号，比对机专用。")
    @JsonProperty("ic_card")
    private String icCard;

    /**
     * 工号，比对机专用。
     */
    @ApiModelProperty("工号，比对机专用。")
    @JsonProperty("work_id")
    private String workId;

    /**
     * 人员ID
     */
    @ApiModelProperty("人员ID")
    private String pid;

    /**
     * 身份证号
     */
    @ApiModelProperty("身份证号")
    @JsonProperty("id_card")
    private String idCard;
    /**
     * 电话号码，比对机专用。
     */
    @ApiModelProperty("电话号码，比对机专用。")
    private String phone;

    /**
     * 部门名称，比对机专用。
     */
    @ApiModelProperty("部门名称，比对机专用。")
    private String department;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String otherInfo;

    /**
     * 类别，1:白名单；2:黑名单；3:VIP；4:访客。比对机专用。
     */
    @ApiModelProperty("类别，1:白名单；2:黑名单；3:VIP；4:访客。比对机专用。")
    private Integer category;

    /**
     * 相似度分数，比对机专用。
     */
    @ApiModelProperty("相似度分数，比对机专用。")
    private Integer score;

    /**
     * 是否戴头盔，0：否，1：是。
     */
    @ApiModelProperty("是否戴头盔，0：否，1：是。")
    private Integer helmet;

    /**
     * 是否抽烟，0：否，1：是。
     */
    @ApiModelProperty("是否抽烟，0：否，1：是。")
    private Integer smoke;

    /**
     * 是否手持物品，0：否，1：是。
     */
    @ApiModelProperty("是否手持物品，0：否，1：是。")
    private Integer handed;

    /**
     * 提取图片的特征值 512的float数组。
     */
    @ApiModelProperty("提取图片的特征值 512的float数组。")
    private Float[] feature;

    /**
     * 对象
     */
    @ApiModelProperty("对象")
    private Map<String, String> data;
}
